Solid-state mass storage media having data volumes with different service levels for different data types

ABSTRACT

Methods for providing non-volatile solid-state mass storage media with different service levels for different types of data associated with different applications. The method includes partitioning the non-volatile solid-state mass storage media into at least first and second volumes, individually assigning different service levels to the first and second volumes based on a type of data to be stored in the first and second volumes and based on the first and second volumes having different data retention requirements and/or data reliability requirements, and then performing service maintenance on data stored within at least the first volume according to the service level of the first volume.

BACKGROUND OF THE INVENTION

The present invention generally relates to solid-state mass storagemedia and their operation. More particularly, the present inventionrelates to flash-based memory devices that comprise multiple volumes andadapted to operate by exposing volumes with different service levels fordifferent types of data.

Non-volatile solid-state memory technologies used with computers andother processing apparatuses (host systems) are currently largelyfocused on NAND flash memory technologies, with other emergingnon-volatile solid-state memory technologies including phase changememory (PCM), resistive random access memory (RRAM), magnetoresistiverandom access memory (MRAM), ferromagnetic random access memory (FRAM),organic memories, and nanotechnology-based storage media such as carbonnanofiber/nanotube-based substrates. These and other non-volatilesolid-state memory technologies will be collectively referred to hereinas solid-state mass storage media. Mainly for cost reasons, at presentthe most common solid-state memory technology used in solid-state drives(SSDs) are NAND flash memory components, commonly referred to asflash-based memory devices, flash-based storage devices, flash-basedmedia, or raw flash.

Similar to rotating media-based hard disk drives (HDDs), SSDs utilize atype of non-volatile memory media and therefore provide persistent datastorage (persistency) without application of power. In comparison toHDDs, SSDs can service a READ command in a quasi-immediate operation,yielding much higher performance especially in the case of small randomaccess read commands. This is largely due to the fact that flash-basedstorage devices (as well as other non-volatile solid-state mass storagemedia) used in SSDs are purely electronic devices that do not containany moving parts. In addition, multi-channel architectures of modernNAND flash-based SSDs result in sequential data transfers saturatingmost host interfaces. A specialized case is the integration of an SSDinto a hard disk drive (HDD) to form what is typically referred to as ahybrid drive. However, even in the case of a hybrid drive, theintegrated SSD is functionally equivalent to a stand-alone SSD.

Another difference between HDDs and flash-based SSDs relates to thewrite endurance of flash-based media. Briefly, flash-based memorycomponents store information in an array of floating-gate transistors,referred to as cells. NAND flash memory cells are organized in what arecommonly referred to as pages, which in turn are organized inpredetermined sections of the component referred to as memory blocks (orsectors). Each cell of a NAND flash memory component has a top gate (TG)and a floating gate (FG), the latter being sandwiched between the topgate and the channel of the cell. The floating gate is separated fromthe channel by an oxide layer, often referred to as the tunnel oxide.Data are stored in a NAND flash memory cell in the form of a charge onthe floating gate which, in turn, defines the channel properties of theNAND flash memory cell by either augmenting or opposing the charge ofthe top gate. This charge on the floating gate is achieved by applying aprogramming voltage to the top gate. The process of programming (writing0's to) a NAND cell requires injection of electrons into the floatinggate by quantum mechanical tunneling, whereas the process of erasing(writing 1's to) a NAND cell requires applying an erase voltage to thedevice substrate, which then pulls electrons from the floating gate.Programming and erasing NAND flash memory cells is an extremely harshprocess utilizing strong electrical fields to move electrons through theoxide layer. After multiple writes to a flash memory cell, it willinadvertently suffer from write endurance problems caused by thebreakdown of the oxide layer. With smaller process geometries becomingmore prevalent, write endurance problems are becoming increasinglyimportant.

Another difference between HDDs and NAND flash memory technology relatesto data retention, that is, the maximum time after which data is writtenthat the information is still guaranteed to be valid and correct.Whereas HDDs retain data for a practically unlimited period of time,NAND flash memory cells are subjected to leakage currents that cause theprogramming charge to dissipate and hence result in data loss. Retentiontime for NAND flash memory may vary between different levels ofreliability, for example, about five years in an enterprise environmentto about one to three years in consumer products. Retention problems arealso becoming increasingly important with smaller process geometries.

Data access and reliability-related characteristics and requirementsassociated with volatile and non-volatile memory components arecollectively referred to herein as service levels and encompass suchrequirements as persistence, validity, write endurance, retention, etc.In view of the above, to be considered as viable storage alternatives toHDDs, SSDs using flash-based solid-state mass storage devices arerequired to meet certain service levels that include write endurance andretention time. Write endurance can be addressed by, for example, wearleveling techniques based on the number of P/E (program/erase) cyclesamong memory blocks. The retention constraint has mandated variousmechanisms. As an example, the number of P/E cycles may be limited tosatisfy the service level probability of the retention requirement.Strong error correction, such as through the use of error checking andcorrection (ECC) algorithms, can also be applied to reduce errors overtime. With decreasing process geometries, constant data scrubbing isrequired to counteract increasing failure rates associated withretention. As known in the art, scrubbing generally refers to refreshingdata by reading data from a memory component, correcting any errors,then writing the data back, usually to a different physical locationwithin the memory component.

Flash-based memory technologies are seldom used as a system memoryreplacement in host systems, as opposed to a mass storage replacementthat takes advantage of the large capacity of flash-based memorycomponents. An intuitive example is in the use of swap files. Moderncomputer system memory are typically made up of random access memory(RAM) integrated circuit (IC) components, often SDRAM (synchronousdynamic random access memory). As the RAM area of system memory mayoften be limited and insufficient, operating systems of computers oftenuse the disk area of an HDD as a swap file to temporarily dump andretrieve memory. Another example of such usage is by applications, suchas temporary space by databases (e.g., TempDB in SQL Server).

Although traditionally provided by HDDs, system memory replacement doesnot require the long retention or even persistency offered by HDDs. Atypical retention period for a swap file is very short (typically a fewminutes at most) and can be limited to a day. Hence, mechanisms thatlimit the P/E cycles can be relaxed for such files or data, as there isno requirement to be able to read the data very far into the future.

Other applications that have been introduced with flash-based media canfurther relax more constraints. For example, a flash read cacheapplication can handle loss of data as it can use the productionvolume's data (the cache just holds a local copy of the same data). Thatis, the application can use error detection mechanisms to verify datacorrectness and can tolerate data errors returned from the flash-basedmedia. Also, persistence is not required in this case as again, thereference copy of the data is always available. Hence, such applicationscan allow even lower levels of data assurance.

In view of the above, different applications require different servicelevels from flash-based media in terms of retention, persistence andvalidity, and the use of a device with the highest service level for alldata places unnecessary constraints and reduces efficient utilization offlash-based media.

The concept of exposing different logical unit numbers (LUNs),representing multiple volumes, with different service levels is wellknown in the storage industry. For example, U.S. Patent ApplicationPublication No. 2010/0169570 addresses the issue from a performanceperspective, providing different quality of service (QoS) levels to eachvolume. That is, volumes are configured to provide different performancemetrics (for example, input/output (IO) operations per second (IOPS),bandwidth, latency, etc.) and assigned to different applicationsaccording to their importance and requirements.

However, flash-based storage is by nature a high performance volume.Hence, the above service level characteristics do not apply for suchvolumes. Instead, and as mentioned above, service level characteristicsfor flash-based storage generally relate to the endurance and retentionlevels of the data. These characteristics have been addressed fromdifferent perspectives. For example, U.S. Pat. No. 8,621,328 disclosesmemory that is logically divided into regions, and in which data arestored applying different error correction for dynamic data and staticdata.

BRIEF DESCRIPTION OF THE INVENTION

The present invention provides methods for providing non-volatilesolid-state mass storage media with different service levels fordifferent types of data associated with different applications, and indoing so provides the opportunity for promoting more optimal usage ofthe storage media.

According to an aspect of the invention, a method of storing data onnon-volatile solid-state mass storage media includes partitioning thenon-volatile solid-state mass storage media into at least first andsecond volumes, individually assigning different service levels to thefirst and second volumes based on a type of data to be stored in thefirst and second volumes and based on the first and second volumeshaving different data retention requirements and/or data reliabilityrequirements, and then performing service maintenance on data storedwithin at least the first volume according to the service level of thefirst volume.

Another aspect of the invention is a non-volatile solid-state massstorage media adapted to perform a method comprising the steps describedabove.

Technical effects of the method and non-volatile solid-state massstorage media described above preferably include the ability to use themedia as replacement or complementary memory media for volatile systemmemory media and HDD storage media, and in particular to selectivelyutilize certain features and attributes of the media for such purposes,including the high storage capacity and random access performance of thenon-volatile solid-state mass storage media, while also preferablyaccommodating and/or adjusting for data retention and write endurancelimitations often associated with such media.

Other aspects and advantages of this invention will be betterappreciated from the following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram that represents DRAM memory media, flash-basedmemory storage media, and HDD storage media and properties thereof foruse in a host system, as well as indications for the use of flash-basedmemory as replacement or complementary memory media for the DRAM memorymedia and HDD storage media.

FIG. 2 is block diagram representing usage in a host system offlash-based memory storage media that provides different volumes withdifferent service levels for different data types used in differentapplications operating within the host system.

FIG. 3 is a block diagram of a wear-leveling process that can beperformed with a flash-based memory storage media utilized, for example,as represented in FIG. 2.

FIG. 4 is a block diagram of a garbage collection process that can beperformed with a flash-based memory storage media utilized, for example,as represented in FIG. 2.

FIG. 5 is a block diagram of a background erase process that can beperformed with a flash-based memory storage media utilized, for example,as represented in FIG. 2.

FIG. 6 is a block diagram of a garbage collection process that can beperformed with a flash-based memory storage media utilized, for example,as represented in FIG. 2.

DETAILED DESCRIPTION OF THE INVENTION

As represented in FIG. 1, current host systems typically utilize DRAM100 as volatile system memory media and HDD storage 120 as non-volatilemass storage media. In a typical host system, the DRAM area is arelatively small area with very high random access but no persistency,whereas the HDD storage area is relatively large with high persistencybut relatively poor random access. As also represented in FIG. 1,non-volatile solid-state mass storage media 110, which in the particularnonlimiting example of FIG. 1 is identified as flash-based memorystorage (flash) media 110, resides between the current computing mediarepresented by the DRAM 100 and HDD storage 120. The flash media 110 hascertain features and attributes of both DRAM 100 and HDD storage 120.For example, the capacity (volume) of flash media 110 is generallybetween those of DRAM 100 and HDD storage 120, and flash media 110provide better random access performance than HDD storage 120, thoughless than the DRAM 100. In addition, whereas DRAM 100 are volatilememory devices and therefore do not retain data in the absence of power,flash media 110 provides data persistency though for a more limitedduration as compared to HDD storage 120.

As a result, it would be desirable to utilize flash media 110 asreplacement or complementary media in a manner that addresses weaknessesin certain features of DRAM 100 and HDD storage 120. In the followingdiscussion, the utilization of flash-based media as replacement and/orcomplementary memory media for volatile system memory media ornon-volatile mass storage media will simply be referred to as“replacement” memory media as a matter of convenience, unless indicatedotherwise. As indicated in FIG. 1, as a replacement or complementarymemory media for DRAM 100 (referred to as “DRAM Replacement” in FIG. 1)or other volatile system memory media, flash media 110 would providecomplementary memory space and data persistence. As a replacement orcomplementary memory media for HDD storage (referred to as “StorageReplacement” in FIG. 1) or other non-volatile mass storage media, flashmedia 110 provides a faster tier of data storage as a result of havinghigher random access performance, for example, based on IOPS.

FIG. 2 schematically represents a block diagram of a nonlimitingembodiment of the present invention, in which a database managementsystem (DBMS) 200 utilizes flash media 260 through a memory controller250, all of which are functionally connected to a host system (notshown), typically as a result of the memory controller 250 beingconnected to the host system via a computer bus interface. As known inthe art, firmware is executed on the memory controller 250 to providesoftware primitive functions and provide a software protocol interfaceand application programming interface (API) to the host system. Theflash media 260 is represented in FIG. 2 as having been partitioned toprovide multiple different volumes 252, 254 and 256. Furthermore, FIG. 2indicates different service levels as having been assigned to thedifferent volumes 252, 254 and 256 for different data types of differentapplications operating within the host system. The different data typesinclude (but are not limited to) data that may be stored in volatile andnon-volatile memory spaces of a conventional host system, and thedifferent applications include (but are not limited to) log files,databases, temporary databases, and indexes associated with the DBMS200. As represented, the DBMS 200 is configured to open a Write AheadLog file (Log) 210 to rapidly record all changes to a database (DB) 214.Those changes are later inserted in the database 214 itself (forexample, by a background process). FIG. 2 represents informationrelating to the Log 210 (log information) as being stored in a logvolume 252 within memory space of the flash media 260. As the loginformation is relatively small and can be limited (for example, bysetting a size threshold for eviction from the Log 210 to the database214), it can be placed on the flash media 260 to provide fast committimes and minimal latency. Since the log information is vital, the logvolume 252 must provide long retention (preferably, for example, atleast five years) and maximal reliability, in which case the log volume252 can be considered to be a long-term storage area of the flash media260 and preferably utilizes error correction as part of an errorchecking and correction (ECC) algorithm that can be performed by thecontroller 250. In combination, the data retention (long-term storage)and data reliability (error treatment using error detection andcorrection) associated with the log volume 252 constitutes a type ofservice level.

The DBMS 200 is represented as using a temporary database space (TempDB)212 for maintaining calculations and other temporary information createdduring analysis processes. The temporary space 212 is desirable if theDRAM (e.g., DRAM 100 of FIG. 1 or other volatile system memory media) ofthe host system is not sufficiently large for the desired operation ofthe host system. Usually the DRAM would be used as a first tier oftemporary data and processed information would be placed on a dedicatedtemporary location (e.g., SQL Server's TempDB) of an HDD. FIG. 2represents the temporary data as being stored in a swap volume 254within memory space of the flash media 260. As swap information lifeexpectancy is relatively short, the retention of this volume 254 may bein a range of days at most (for example, one to two days, though longerretention is possible), in which case the swap volume 254 can be viewedas a short-term storage area of the flash media 260. Also, as the swapvolume 254 serves as replacement memory media for volatile system memorymedia (e.g., DRAM 100), there is no need for persistency in this volume254 since the data stored in volatile memory media are not persistent.However, as indicated in FIG. 2, the swap volume 254 preferably utilizeserror correction as part of an ECC algorithm that can be performed bythe controller 250. In combination, the data retention (short-termstorage) and data reliability (error treatment using error detection andcorrection) associated with the swap volume 254 constitutes a type ofservice level that is different from the service level of the log volume252.

The DBMS 200 stores information in large files containing a plurality ofrecords within the database 214 and preferably utilizes indexes 216 toimprove performance. Although small databases can be placed entirely ona flash device, typical DBMS 200 would require a back-end storage systemto store all the database information. The flash media 260 representedin FIG. 2 can be used to accelerate the access to this information via aread cache application within an acceleration layer 230 and a read cachevolume 256 within memory space of the flash media 260. Because the readcache volume 256 serves as replacement memory media for volatile systemmemory media (effectively enlarging the DRAM cache), this volume 256does not require persistency or long retention and therefore can beviewed as a short-term storage area of the flash media 260. Furthermore,as the data reside in the back-end storage, loss of data is tolerated aslong as it can be detected. Hence, the read cache volume 256 preferablyutilizes error detection, in other words, the read cache application ismade aware that errors have occurred, but that the data remain in error,not corrected, and not to be used. Error detection utilized by the readcache volume 256 can be performed by the controller 250, but does notrequire error correction using an ECC algorithm. In combination, thedata retention (short-term storage) and data reliability (errortreatment using error detection) associated with the read cache volume256 constitutes a type of service level that is different from theservice levels of the log and swap volumes 252 and 254.

Though three different volumes 252, 254 and 256 are represented in FIG.2, fewer and greater numbers of volumes could be partitioned on theflash media 260. According to particular but nonlimiting embodiments ofthe invention, each of the volumes 252, 254 and 256 can be provided bythe same flash component through its controller 250. A user can bepermitted to configure the size of each volume 252, 254 and 256 and itstype (for example, log, swap, or read cache). As known in the art,hardware and firmware elements in the controller 250 or otherwiseassociated with the flash media 260 can be used to partition thedifferent volumes 252, 254 and 256 and assign their desired differentservice levels relating to data retention and write endurance, and/orinternal components such as a flash management system can be used torelax P/E cycle count limitations and/or switch between error detectionand error correction for the different volumes 252, 254 and 256 toassign their desired different service levels. For example, a user canconfigure the flash media 260 via an API and management software suchthat the flash media 260 exposes the volumes 252, 254 and 256 to thehost system. Standard storage API commands for this purpose include, butare not limited to, SCSI Inquiry, SCSI Report LUN, SCSI Get Capacity,etc. The flash media 260 may, but is not required, to use allflash-based media, in other words, flash memory blocks (sectors) as asingle pool to provide the desired volumes 252, 254 and 256 and theirdifferent service levels.

FIGS. 3 through 6 represent different manners by which servicemaintenance can be individually performed on data of different volumespartitioned on non-volatile solid-state mass storage media, such as thevolumes 252, 254, and 256 on the flash media 260, according to differentservice levels that have been assigned to the volumes. FIG. 3schematically represents flash blocks 342, 344 and 346 (for example, ofthe flash media 260 of FIG. 2) arranged in a single pool 330. Each block342, 344 and 346 (each made up of multiple pages comprising multiplememory cells) has a corresponding erase count 352, 354 and 356, whichindicates the number of times the block 342, 344, or 346 was erased (andprogrammed). According to a nonlimiting embodiment of the invention, awear-leveling process can be performed on the blocks 342, 344 and 346 toprovide different erase levels to blocks associated with differentvolumes within the flash media, for example, the volumes 252, 254, and256 of FIG. 2. When a volume needs one or more new blocks to writeincoming data, it receives such blocks 320 from a wear level allocator300 according to a data type associated with a service level 310associated with that volume. As a new erased block becomes available tothe volume, the blocks 320 will have an erase count that is less thanthat required by the service level 310 specified for the particular datatype to be stored in the volume, for example, the log, TempDB, DB orindex data of FIG. 2.

FIG. 4 schematically represents flash blocks 442, 444 and 446 (forexample, of the flash media 260 of FIG. 2) arranged in a single pool430, and each block 442, 444 and 446 having a corresponding erase count451, 455 or 457, and a dirty level mark 452, 454, or 456 (denoted thenumber of dirty pages in the block 442, 444 or 446). According to anonlimiting embodiment of the invention, a garbage collection process400 can be performed on the blocks 442, 444 and 446 in the background toerase dirty blocks or merge blocks with high levels of dirty data. Adirty block, in other words, a block in which all pages therein aredirty, is erased and sent to a free pages pool. Also according to anonlimiting embodiment of the invention, following a request for one ormore free blocks for a volume (and, therefore, requiring a particulardata type and service level), one or more blocks 410 can be selected ascandidates for merger and erase according to their dirty level, erasecount and data type 420 associated with a service level consistent withthe volume, for example, the log, TempDB, DB or index data of FIG. 2.

FIG. 5 schematically represents flash blocks 542, 544 and 546 (forexample, of the flash media 260 of FIG. 2) arranged in a single pool540, and each block 542, 544 and 546 having a corresponding erase count522, 524 or 526. According to a nonlimiting embodiment of the invention,a block allocation algorithm can be performed on the blocks 442, 444 and446 in which the free blocks 542, 544 and 546 within the pool 540 arearranged by a sort process 530 into a list 505 according to their erasecounts 522, 524 and 526, ranging from relatively “low” to “high” erasecounts. With nonlimiting reference to the log, swap, and read cachevolumes 252, 254, and 256 of FIG. 2, free blocks within the pool 540 canbe allocated to the volumes 252, 254 and 256 based on the erase counts522, 524 and 526 of the blocks. For example, if the log volume 252requires a free block, the sort process 530 can provide a block with thesmallest erase count (i.e., the first in the sorted list 505) to the logvolume 252. Likewise, if the cache volume 256 requires a free block, thesort process 530 will allocate a block with a high erase count, e.g., ablock from the highest 10% of the free blocks. As a corollary, the logvolume 252 can be provided with blocks having relatively lower P/Ecycles than the cache volume 256 to meet the higher data retentionreliability required of the log volume 252.

As an alternative to the garbage collection scheme of FIG. 4, FIG. 6represents a garbage collection process that can be performed ondifferent volumes on flash media, for example, the log, swap, and readcache volumes 252, 254, and 256 of the flash media 260 of FIG. 2. Eachvolume 252, 254, and 256 maintains a set of values 641, 642 and 643which include dirty level indicators 661, 662, 663, 664, 665 and 666 anderase counts 671, 672, 673, 674, 675 and 676 for each of individual datablock 652, 654, 656, 658, 655 and 657 within the volumes 252, 254, and256.

According to a nonlimiting embodiment of the invention, if the number ofavailable blocks for the log volume 252 (i.e., free blocks with lowerase counts) is below a threshold 622 and the number of partially dirtyblocks is above a second threshold 631, the garbage collection processstarts merging blocks from the log volume 252, and preferred candidatesfor merging are blocks with the highest dirty levels 661 and 662 withinthe log volume 252. Also according to a nonlimiting embodiment of theinvention, if the number of available blocks for the swap volume 254 isbelow a threshold 624 and the number of partially dirty blocks is abovea second threshold 632, the garbage collection process starts mergingblocks from the swap volume 254, and preferred candidates for mergingare blocks with the highest dirty level 663 and 664 within the swapvolume 254. Still further according to a nonlimiting embodiment of theinvention, if the number of available blocks for the cache volume 256 isbelow a threshold 626 and the number of partially dirty blocks is abovea second threshold 633, the garbage collection process starts mergingblocks from the cache volume 256, and preferred candidates for mergingare blocks with the highest dirty level 665 and 666 within the cachevolume 256. Hence, as a corollary of these actions, each volume 252, 254and 256 can be provided with a pool of blocks for a write peak. Thedecision criteria for a merge in the garbage collection process can bechosen to provide different levels of reliability. In addition, thecriteria for the swap volume 254 can be relaxed to reduce the chance ofblock shortage in a write peak.

While the invention has been described in terms of specific embodiments,it is apparent that other forms could be adopted by one skilled in theart. Therefore, the scope of the invention is to be limited only by thefollowing claims.

The invention claimed is:
 1. A method of storing data on a non-volatilesolid-state mass storage media functionally connected to a host system,the method comprising: partitioning the non-volatile solid-state massstorage media into at least first and second volumes; individuallyassigning different service levels to the first and second volumes basedon a type of data to be stored in the first and second volumes and basedon the first and second volumes having different data retention and datareliability requirements; and performing service maintenance on datastored within at least the first volume according to the service levelof the first volume.
 2. The method of claim 1, wherein the non-volatilesolid-state mass storage media is flash-based memory media.
 3. Themethod of claim 1, wherein the host system further has volatile systemmemory media functionally connected thereto, and the method furthercomprises utilizing the non-volatile solid-state mass storage media ascomplimentary or replacement memory media for the volatile system memorymedia.
 4. The method of claim 1, wherein the service maintenanceperformed on the data stored within the first volume comprises an errortreatment that is different than the service level of the second volume.5. The method of claim 4, wherein the error treatment comprises errorchecking and correction.
 6. The method of claim 4, wherein the errortreatment comprises error detection but not error correction.
 7. Themethod of claim 4, wherein the error treatment comprises a different P/Ecycle count limitation of the first volume.
 8. The method of claim 1,wherein the data stored on the first volume are log data, and the firstvolume is assigned a higher endurance and/or higher retention servicelevel than the second volume.
 9. The method of claim 1, wherein the datastored on the first volume are swap data, and the first volume isassigned an endurance and/or retention service level that is higher thanan endurance and/or retention service level of the second volume butlower than an endurance and/or retention service level assigned to athird volume partitioned on the non-volatile solid-state mass storagemedia.
 10. The method of claim 1, wherein the data stored on the firstvolume are cache data, and the first volume is assigned a lowerendurance and/or lower retention service level than the second volume.11. The method of claim 1, wherein the first and second volumes eachcomprise a plurality of blocks each having an erase count, the methodfurther comprising: performing wear leveling on the data of each of thefirst and second volumes according to the different service levels ofthe first and second volumes; and providing a new block to the firstvolume for writing incoming data thereto, the new block being selectedto have an erase count less than an erase count threshold correspondingto the service level of the first volume.
 12. The method of claim 1,wherein the first and second volumes each comprise a plurality of blockseach having an erase count and a dirty page count, the method furthercomprising: performing garbage collection on the data of each of thefirst and second volumes according to the different service levels ofthe first and second volumes, wherein blocks having a dirty page countabove a predetermined threshold are erased and sent to a free pagespool; and providing a new block from the free pages pool to the firstvolume for writing incoming data thereto.
 13. A non-volatile solid-statemass storage media comprising: non-volatile solid-state memorypartitioned into a plurality of volumes, each volume of the plurality ofvolumes having an individually assigned service level based on a type ofdata to be stored in the volume, a data retention requirement, and adata reliability requirement, wherein at least one volume of theplurality of volumes having a different data retention and datareliability requirements than another volume of the plurality ofvolumes.
 14. The non-volatile solid-state mass storage media of claim13, wherein each volume of the plurality of volumes is configured toreceive service maintenance on data stored in the volume according tothe individually assigned service level.
 15. The non-volatilesolid-state mass storage media of claim 13, wherein the non-volatilesolid-state memory is flash-based memory media.
 16. The non-volatilesolid-state mass storage media of claim 14, wherein the servicemaintenance comprises wear leveling.
 17. The non-volatile solid-statemass storage media of claim 14, wherein the service maintenancecomprises garbage collection.
 18. The non-volatile solid-state massstorage media of claim 14, wherein the service maintenance comprises anerror treatment.
 19. The non-volatile solid-state mass storage media ofclaim 18, wherein at least one volume of the plurality of volumes havinga different error treatment than another volume of the plurality ofvolumes.
 20. The non-volatile solid-state mass storage media of claim18, wherein the error treatment comprises error checking and correction.21. The non-volatile solid-state mass storage media of claim 18, whereinthe error treatment comprises error detection but not error correction.22. The non-volatile solid-state mass storage media of claim 18, whereinthe error treatment comprises a P/E cycle count limitation of thevolume.
 23. The non-volatile solid-state mass storage media of claim 13,wherein a first volume of the plurality of volumes is configured tostore log data, and the first volume is assigned an endurance and/orretention service level that is higher than another of the plurality ofvolumes.
 24. The non-volatile solid-state mass storage media of claim13, wherein a first volume of the plurality of volumes is configured tostore swap data, the first volume is assigned an endurance and/orretention service level that is higher than an endurance and/orretention service level of a second volume of the plurality of volumes,but lower than an endurance and/or retention service level of a thirdvolume of the plurality of volumes.
 25. The non-volatile solid-statemass storage media of claim 13, wherein one or more volumes of theplurality of volumes is configured to store a plurality of blocks eachhaving an erase count, and the one or more volumes are configured towrite incoming data to a block having an erase count less than an erasecount threshold corresponding to the service level.
 26. The non-volatilesolid-state mass storage media of claim 13, wherein one or more volumesof the plurality of volumes comprises a plurality of blocks each havingan erase count and a dirty page count, and the one or more volumes areconfigured to write incoming data to a new block from a free pages pool,the free pages pool comprising one or more blocks having a dirty pagecount above a predetermined threshold, and the new block correspondingto an erased block from the free pages pool.